package read.prjx;


import read.prjx.dst.Dst;
import read.prjx.dst.data.IbData;
import read.prjx.sum.Sum;

import java.util.UUID;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

public class ReadInfo {

    public Vector<Vector<String>> readPrjx(String filePath) {
        Sum sum = new Sum();
        List<Dst> dsts = new ArrayList<>();
        File file = new File(filePath);
        File[] fs = file.listFiles();
        Vector<Vector<String>> tabData = new Vector<>();
        for (File f : fs) {
            if (!f.isDirectory()) {
                if (f.toString().contains(".sum")) {
                    sum.setSumData(readFileContent(f.toString()));
                }
                if (f.toString().contains(".rcd")) {
//                    System.out.println(f);
                }
                if (f.toString().contains(".dst")) {
                    Dst dst = new Dst();
                    dst.setDstData(readFileContent(f.toString()));
                    dsts.add(dst);
                }
            }
        }
        int i = 0, j = 0;
        for (Dst dst : dsts) {
            j++;
            for (IbData ibData : dst.getDstData().getIbData()) {
                Vector<String> vstr = new Vector<>();
                String uuid = UUID.randomUUID().toString().replaceAll("-", "");
                i++;
                vstr.add(i + "");
//                vstr.add(ibData.getOrder());
                vstr.add(ibData.getCustOmer());
                vstr.add(ibData.getNote1());
                vstr.add(ibData.getWidTh());
                vstr.add(ibData.getHeiGht());
                vstr.add(ibData.getCtiMes());
                vstr.add(ibData.getNote2());
                vstr.add(ibData.getNote3().trim());
                vstr.add(j+"");
                vstr.add(ibData.getOrder());
                vstr.add(uuid);
                vstr.add(ibData.getId());
                vstr.add(ibData.getClaSsify());
                vstr.add(ibData.getBarCode());
                vstr.add(ibData.getRoTate());
                tabData.add(vstr);
            }
        }
        return tabData;
    }

    public static String readFileContent(String fileName) {
        File file = new File(fileName);
        BufferedReader reader = null;
        StringBuffer sbf = new StringBuffer();
        try {
            InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "GBK");
            reader = new BufferedReader(isr);
            String tempStr;
            while ((tempStr = reader.readLine()) != null) {
                if (tempStr.equals("")) {
                    tempStr = "@";
                }
                sbf.append(tempStr);
                sbf.append(System.getProperty("line.separator"));
            }
            reader.close();
            return sbf.toString();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        }
        return sbf.toString();
    }
}
